package com.qinggeng.common.constant;

import io.jsonwebtoken.Claims;

import java.util.concurrent.TimeUnit;

/**
 * 通用常量信息
 *
 * @author qinggeng
 */
public class Constants
{
    // 激活环境
    public static String ACTIVE;
    //是否调试模式
    public static Boolean DEBUG ;

    public static void setDEBUG(String active) {
        Constants.ACTIVE = active;
        Constants.DEBUG=active.equals("pro")?false:true;
    }

    /**
     * UTF-8 字符集
     */
    public static final String UTF8 = "UTF-8";

    /**
     * GBK 字符集
     */
    public static final String GBK = "GBK";
    /**
     * 通用成功标识
     */
    public static final String SUCCESS = "0";

    /**
     * 通用失败标识
     */
    public static final String FAIL = "1";

    /**
     * 登录成功
     */
    public static final String LOGIN_SUCCESS = "Success";

    /**
     * 注销
     */
    public static final String LOGOUT = "Logout";

    /**
     * 登录失败
     */
    public static final String LOGIN_FAIL = "Error";

    /**
     * 验证码 redis key
     */
    public static final String CAPTCHA_CODE_KEY = "captcha_codes:";

    /**
     * 登录用户 redis key
     */
    public static final String LOGIN_TOKEN_KEY = "login_tokens:";

    /**
     * 验证码有效期（分钟）
     */
    public static final Integer CAPTCHA_EXPIRATION = 2;

    /**
     * 令牌
     */
    public static final String TOKEN = "token";

    /**
     * 令牌前缀
     */
    public static final String TOKEN_PREFIX = "Bearer ";

    /**
     * 令牌前缀
     */
    public static final String LOGIN_USER_KEY = "login_user_key:";

    /**
     * 用户ID
     */
    public static final String JWT_USERID = "userid";

    /**
     * 用户名称
     */
    public static final String JWT_USERNAME = Claims.SUBJECT;

    /**
     * 用户头像
     */
    public static final String JWT_AVATAR = "avatar";

    /**
     * 创建时间
     */
    public static final String JWT_CREATED = "created";

    /**
     * 用户权限
     */
    public static final String JWT_AUTHORITIES = "authorities";

    /**
     * 资源映射路径 前缀
     */
    public static final String RESOURCE_PREFIX = "/profile";


    //短信 存放Key
    public static final  String SMS_KEY = "SMS:";

    //用户选择的配送点ID存放key
    public static final String POINT_KEY="USER_POINT_ID:";
    /**
     * 接口Token有效期
     */
    public static final Integer API_TOKEN_EXPIRY = 7;
    /**
     * 接口Token有效期时间类型
     */
    public static final TimeUnit API_TOKEN_TIMEUNIT = TimeUnit.DAYS;
    /**
     * 接口用户ID
     */
    public static final String API_USERID = "userid";
    /**
     * 登录用户 redis key
     */
    public static final String API_TOKEN_KEY = "api_login_tokens:";
    /**
     * 登录用户Role redis key
     */
    public static final String API_TOKEN_ROLE_KEY = "api_login_role_tokens:";
    /**
     * 毫秒数
     */
    public static final Integer API_TOKEN_MILLIS_SECOND = 1000;

    public static final Integer API_TOKEN_MILLIS_TIMEUNIT = 24 * 60 * 60 * API_TOKEN_MILLIS_SECOND;
    /**
     * 测试环境
     */
    public static final String TEST_ENVIRONMENT ="dev";
    /**
     * 生产环境
     */
    public static final String PRO_ENVIRONMENT ="pro";
}
